# -*- coding: utf-8 -*-
# @File  : 夹具之间可以依赖.py
# @Author: zbh
# @Date  : 2025/3/31_20:04

# 夹具可以依赖其他夹具，通过在夹具函数中使用其他夹具的参数名来实现。


import pytest

# 定义一个基础夹具
@pytest.fixture
def base_data():
    return [1, 2, 3]

# 定义一个依赖于 base_data 的夹具
@pytest.fixture
def processed_data(base_data):
    return [i * 2 for i in base_data]

# 测试函数
def test_processed(processed_data):
    assert processed_data == [2, 4, 6]


# 使用 autouse=True 参数可以让夹具自动应用到所有符合作用域的测试函数中。

import pytest

# 自动使用的夹具
@pytest.fixture(autouse=True)
def setup_teardown():
    print("Setup before test")
    yield
    print("Teardown after test")

# 测试函数
def test_auto_use():
    assert 1 + 1 == 2


# 在测试函数中可以同时使用多个夹具。
import pytest

@pytest.fixture
def data_1():
    return [1, 2, 3]

@pytest.fixture
def data_2():
    return [4, 5, 6]

def test_multiple_fixtures(data_1, data_2):
    combined = data_1 + data_2
    assert len(combined) == 6














